Yang1979 Function

private function Yang1979(flow, s, v, d, dp) result(tc)

compute sediment transport capacity using Yang (1979) approach (kg/s) limitation: Yang1979 equation can be applied when the dimensionless unit stream power is relatively small with respect to the prevailing value of unit stream power. Used for finer suspended sediment trasnport in the Yellow River with median particle diameter of 0.067 mm.

References:

Yang, C. T., Unit stream power equations for total load. J. Hydro., Amsterdam, The Netherlands, Vol. 40, 123–138.

Yang, C. T., Molinas, A., Wu, B., Sediment transport in the Yellow River, J. Hydraul. Eng., 122(5), 237–244, 1996.

Arguments

Type IntentOptional Attributes Name
real(kind=float), intent(in) :: flow

water discharge in channel (m3/s)

real(kind=float), intent(in) :: s

channel slope (m/m)

real(kind=float), intent(in) :: v

water flow velocity in channel (m/s)

real(kind=float), intent(in) :: d

particle size of bed material (mm)

real(kind=float), intent(in) :: dp

water depth (m)

Return Value real(kind=float)

computed transport capacity (kg/s)


Variables

Type Visibility Attributes Name Initial
real(kind=float), public :: I

terms to compute transport capacity in Yang method

real(kind=float), public :: J

terms to compute transport capacity in Yang method

real(kind=float), public :: conc

sediment concentration (mg/l)

real(kind=float), public :: kVisc = 0.000001004

kinematic viscosity of water at 20 °C(m2/s)

real(kind=float), public :: vs

channel Unit Stream Power (m/s)

real(kind=float), public :: vsCrit

critical channel Unit Stream Power (m/s)


Source Code

FUNCTION Yang1979 &
!
(flow, s, v, d, dp) &
!
RESULT (tc)

IMPLICIT NONE

!Arguments with intent in:
REAL (KIND = float), INTENT(IN) :: flow !!water discharge in channel (m3/s)
REAL (KIND = float), INTENT(IN) :: s !!channel slope (m/m)
REAL (KIND = float), INTENT(IN) :: v !!water flow velocity in channel (m/s)
REAL (KIND = float), INTENT(IN) :: d !!particle size of bed material (mm)
REAL (KIND = float), INTENT(IN) :: dp !!water depth (m)

!local declarations:
REAL (KIND = float) :: tc !!computed transport capacity (kg/s)
REAL (KIND = float) :: vs !! channel Unit Stream Power (m/s)
REAL (KIND = float) :: vsCrit !! critical channel Unit Stream Power (m/s)
REAL (KIND = float) :: kVisc = 0.000001004 !!kinematic viscosity of water at 20 °C(m2/s)
REAL (KIND = float) :: I, J !! terms to compute transport capacity in Yang method
REAL (KIND = float) :: conc !!sediment concentration (mg/l)

!------------end of declaration------------------------------------------------

!compute channel unit stream power
vs = v * s

!compute channel critical unit stream power
vsCrit = CriticalVelocity(d, dp, s) * s

!compute I and J

I = 5.165 - 0.153 * LOG (FallVelocity(d) * (d/1000.) / kVisc) - &
    0.297 * LOG (ShearVelocity(dp,s)/FallVelocity(d)) 
    
J = 1.780 - 0.360 * LOG (FallVelocity(d) * (d/1000.) / kVisc) - &
    0.480 * LOG (ShearVelocity(dp,s)/FallVelocity(d)) 
    
!compute sediment concentration (ppm or mg/l)
IF (vs > vsCrit) THEN
   conc = EXP ( I + J * LOG((vs - vsCrit)/FallVelocity(d)) )
ELSE
   conc = 0.
END IF

IF (conc < 0.) THEN
  conc = 0.
END IF

!compute transform capacity (kg/s)
tc = flow * conc / 1000.


END FUNCTION Yang1979